草庐IT

php - Json_encode、json_decode 和 UTF8

全部标签

ruby-on-rails - rails : encoding woes with serialized hashes despite UTF8

我刚刚从ruby​​1.9.2更新到ruby​​1.9.3p0(2011-10-30修订版33570)。我的Rails应用程序使用postgresql作为其数据库后端。系统区域设置为UTF8,数据库编码也是如此。Rails应用程序的默认编码也是UTF8。我有中国用户输入汉字和英文字符。字符串存储为UTF8编码字符串。rails版本:3.0.9自更新以来,数据库中的一些现有中文字符串不再正确显示。这不会影响所有字符串,只会影响那些属于序列化哈希的字符串。存储为普通字符串的所有其他字符串看起来仍然是正确的。示例:这是一个序列化的散列,在数据库中存储为UTF8字符串:broken="---!

ruby - 在嵌套对象中使用自定义 to_json 方法

我有一个使用Ruby标准库中的Set类的数据结构。我希望能够将我的数据结构序列化为JSON字符串。默认情况下,Set序列化为数组:>>s=Set.new[1,2,3]>>s.to_json=>"[1,2,3]"这很好,直到您尝试反序列化它。所以我定义了一个自定义的to_json方法:classSetdefto_json(*a){"json_class"=>self.class.name,"data"=>{"elements"=>self.to_a}}.to_json(*a)enddefself.json_create(o)newo["data"]["elements"]endend哪个

ruby-on-rails - 出现错误 - 类型 "json"不存在 - 在 rake db 迁移期间在 Postgresql 中

我最近将一个项目克隆到我的本地Ubuntu机器上,因为我在远程,并且在rakedbmigrate时,我收到以下错误:PG::UndefinedObject:ERROR:type"json"doesnotexist我的表中的几列是:add_column:table,:column,:json此迁移适用于工作中的Mac,但不适用于此处。我已尝试升级到PostgreSQL9.3.4,但问题仍然存在。我也尝试了sudoapt-getupgradepostgresql,但问题仍然存在。Ruby版本为2.1.0Rails版本是4.0.3 最佳答案

ruby-on-rails - rails : Why do I get "warning: already initialized constant JSON::VERSION" when running rake cucumber?

我刚刚设置了一个LinuxMintbox,用于使用rvm进行Rails开发。我继续生成了一个Rails5应用程序,设置了mysql连接,添加了cucumber-railsgem然后尝试运行:rakecucumber出于某种原因,我遇到了:/usr/bin/ruby2.3-Sbundleexeccucumber--profiledefault/usr/lib/ruby/vendor_ruby/json/version.rb:3:warning:alreadyinitializedconstantJSON::VERSION/var/lib/gems/2.3.0/gems/json-1.8.

ruby-on-rails - rails : how to set json format for redirect_to

我如何才能不重定向到html格式而是重定向到json?我想要这样的东西:redirect_touser_path(@user),format::json但这不起作用,我仍然重定向到html路径。 最佳答案 我又读了一些apidock...这很简单。我应该像这样在路径助手中指定格式:redirect_touser_path(@user,format::json) 关于ruby-on-rails-rails:howtosetjsonformatforredirect_to,我们在StackO

ruby - 如何从 JSON 字符串中删除反斜杠?

我有一个如下所示的JSON字符串'{\"test\":{\"test1\":{\"test1\":[{\"test2\":\"1\",\"test3\":\"foo\",\"test4\":\"bar\",\"test5\":\"test7\"}]}}}'我需要使用Ruby或Rails将其更改为以下内容:'{"test":{"test1":{"test1":[{"test2":"1","test3":"foo","test4":"bar","test5":"bar2"}]}}}'我需要知道如何删除那些斜杠。 最佳答案 要避免在控制台

ruby-on-rails - to_json 不将特殊字符转换为 unicode 样式

我在将哈希值转换为json字符串时遇到特殊字符问题。Ruby2.0/Rails3.2.21一切正常,也就是说,puts"“".to_json#"\u201c"但是使用Ruby2.3.0/Rails4.2.5.1我明白了puts"“".to_json#"“"有什么方法可以强制Ruby2.3.0将特殊字符转换为unicode样式字符串(\uXXXX)?备注:注意在Ruby2.3/Rails4中,我们得到"“".to_json.bytesize==5#true但是,在2.0中我们得到"“".to_json.bytesize==8#true很明显,不同的是字符串本身,而不是不同的输出格式。

ruby-on-rails - 使用 curl 将 JSON 数据发布到简单的 Rails 应用程序

我使用脚手架设置了一个简单的新Rails应用程序,其中包含模型条目、属性title和content。现在我正在尝试使用curl来发布JSON数据(而不是使用浏览器)。以下似乎有效(即成功发布空数据):curl--verbose--header"Accept:application/json"--header"Content-type:application/json"--requestPOST--data""http://localhost:3000/entries以下不起作用:curl--verbose--header"Accept:application/json"--header

ruby-on-rails - Ruby 2.2:PG::CharacterNotInRepertoire:错误:编码 "UTF8"的无效字节序列

我正在升级Rails4.1应用程序以使用Ruby2.2。在升级期间,事实证明该应用程序使用了旧版本的pggem(0.12),并且gem没有使用Ruby2.2安装。所以我尝试使用更新版本的pggem(0.17.1)。现在在系统中创建新用户时有时会出现以下错误:PG::CharacterNotInRepertoire:ERROR:invalidbytesequenceforencoding"UTF8"Ruby2.2和Postgres是否存在任何已知问题?看起来应用程序配置为使用unicode:config.encoding="utf-8"在application.rb中设置,encodin

ruby-on-rails - Rails as_json 问题 - 如何有效地包含嵌套对象?

我遇到了一个问题,我正在使用as_json方法,以及如何有效地返回JSON中的对象AND它也是belongs_to对象作为JSON,其中belongs_to对象具有它自己的belongs_to对象。代码可能会更好地解释它。无效的方式警报类classAlert:message)endend消息类defas_json(options={})super(methods:[:timestamp,:num_photos,:first_photo_url,:tag_names],include:{camera:{only:[:id,:name]},position:{only:[:id,:name